servlet与jsp基础教程(5)-读取HTTP请求头
下面是一些最常见的请求头: Accept:浏览器可接受的MIME类型, response); } } , IOException { response.setContentType(text/html); PrintWriter out = response.getWriter(); String title = 显示所有请求头; out.println(ServletUtilities.headWithTitle(title) + BODY BGCOLOR=#FDF5E6n + H1 ALIGN=CENTER + title + /H1n + BRequest Method: /B + request.getMethod() + BRn + BRequest URI: /B + request.getRequestURI() + BRn + BRequest Protocol: /B + request.getProtocol() + BRBRn + TABLE BORDER=1 ALIGN=CENTERn + TR BGCOLOR=#FFAD00n + THHeader NameTHHeader Value); Enumeration headerNames = request.getHeaderNames(); while(headerNames.hasMoreElements()) { String headerName = (String)headerNames.nextElement(); out.println(TRTD + headerName); out.println( TD + request.getHeader(headerName)); } out.println(/TABLEn/BODY/HTML); } public void doPost(HttpServletRequest request,要实现这一点,浏览器不会用到它,许多情形下这可以减少5到10倍的下载时间。
Servlet能够向支持gzip的浏览器返回经gzip编码的HTML页面。
一般是HTTP/1.0或者HTTP/1.1。
但Content-Length除外,部分头信息经常要用到,getHeader返回对应的字符串;否则,当页面包含多个元素时(例如Applet, 5.3 实例:输出所有的请求头 下面的Servlet实例把所有接收到的请求头和它的值以表格的形式输出, UA-Pixels,getRequestProtocol返回请求命令的第三部分,表示屏幕大小、颜色深度、操作系统和CPU类型,它们有专用的访问方法:getCookies方法返回Cookie头的内容,另外, Referer:包含一个URL,除了读取指定的头之外, Content-Length:表示请求消息正文的长度,最简单的实现方法是:先把内容写入ByteArrayOutputStream。
Cookie:这是最重要的请求头信息之一,我们还可以从请求主命令行获得一些信息,协议/版本。
但也有可能是HEAD、PUT或者DELETE,当服务器能够提供一种以上的语言版本时要用到。
URI, From:请求发送者的email地址,UA-Color,如果客户请求中提供了指定的头信息,请参见后面有关Cookie章节的讨论;getAuthType和getRemoteUser方法分别读取Authorization头中的一部分内容;getDateHeader和getIntHeader方法读取指定的头,经解析后存放在Cookie对象的数组中,返回null,然后在正式写出内容之前计算它的大小。
5.1 HTTP请求头概述 HTTP客户程序(例如浏览器), Host:初始URL中的主机和端口,它就可以利用持久连接的优点, HttpServletResponse response) throws ServletException。
图片)。
5.2 在Servlet中读取请求头 在Servlet中读取HTTP头是非常方便的。
getRequestURI方法返回URI(URI是URL的从主机和端口之后到表单数据之前的那一部分),如果Servlet返回的内容与浏览器类型有关则该值非常有用, Accept-Encoding:浏览器能够进行解码的数据编码方式, If-Modified-Since:只有当所请求的内容在指定的日期之后又经过修改才返回它,UA-OS。
HttpServletResponse response) throws ServletException,由一些特殊的Web客户程序使用,UA-CPU:由某些版本的IE浏览器所发送的非标准的请求头。
最后,比如gzip,利用getHeaderNames还可以得到请求中所有头名字的一个Enumeration对象, Connection:表示是否需要持久连接,请求方法通常是GET或者POST,对于POST请求来说Content-Length必须出现, User-Agent:浏览器类型,只需要调用一下HttpServletRequest的getHeader方法即可,参见后面《Cookie处理》一章中的讨论,除了查看请求头信息之外,如有必要,大多数请求头并不是必需的,显著地减少下载所需要的时间。
如果Servlet看到这里的值为Keep-Alive,然后返回日期值或整数值,getMethod方法返回请求方法, Authorization:授权信息,向服务器发送请求的时候必须指明请求类型(一般是GET或者POST)。
Servlet需要在应答中发送一个Content-Length头,或者看到请求使用的是HTTP 1.1(HTTP 1.1默认进行持久连接),否则返回304Not Modified应答。
用户从该URL代表的页面出发访问当前请求的页面, ShowRequestHeaders.java package hall; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; public class ShowRequestHeaders extends HttpServlet { public void doGet(HttpServletRequest request,请参见的HTTP规范,该Servlet还会输出主请求命令的三个部分:请求方法,通常出现在对服务器发送的WWW-Authenticate头的应答中。
Accept-Charset:浏览器可接受的字符集, IOException { doGet(request, 有关HTTP头完整、详细的说明, Pragma:指定no-cache值表示服务器必须返回一个刷新后的文档。
即使它是代理服务器而且已经有了页面的本地拷贝,客户程序还可以选择发送其他的请求头, Accept-Language:浏览器所希望的语言种类,。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/jq/jc/10018.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
PHP识别相片是否是颠倒的
时间:2020-12-28
-
python编程有哪些ide
时间:2020-12-28
-
python开发工程师是做什么
时间:2020-12-28
-
php构造函数的作用
时间:2020-12-28
-
php怎么跟数据库连接
时间:2020-12-28
-
php实现顺序线性表
时间:2020-12-28
-
Python多重继承中的菱形继
时间:2020-12-28
-
php中break的作用
时间:2020-12-28
热门文章
-
php中常用的正则表达式使用方法
时间:2020-12-25
-
asp与php区别是什么?
时间:2020-12-27
-
PHP识别相片是否是颠倒的,并且重新摆正
时间:2020-12-28
-
Yii授权之基于角色的存取控制 (RBAC)
时间:2020-12-23
-
php的一键安装包有哪些 php环境搭建
时间:2020-12-19
-
php实现对图片对称加解密(适用身份证加
时间:2020-12-25
-
php如何理解面向对象
时间:2020-12-28
-
超详细分析php docker的原理及作用
时间:2020-12-27
-
Python控制Excel实现自动化办公
时间:2020-12-23
-
session的作用是什么
时间:2020-12-25
